package net.gdface.bean;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.annotation.JsonRawValue;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

/**
 * 将 {@link JSON}封装为可以被Thrift正常序列化的对象
 * @author guyadong
 *
 */
public final class JsonWrapper {
	@JsonRawValue()
	@JsonUnwrapped
	private JSON value;
	
	public JsonWrapper() {
	}
	
	public JsonWrapper(JSON value) {
		this.value = value;
	}
	/**
	 * @return 返回{@link JSON}对象序列化JSON字符串
	 */
	public String getValue(){
		return null == value ? null : value.toString(SerializerFeature.WriteDateUseDateFormat);
	}
	/**
	 * @param value JSON字符串
	 */
	public void setValue(String value){
		this.value =  JSON.parseObject(value,JSON.class);
	}
	/**
	 * @return 返回{@link JSON}对象
	 */
	public JSON value(){
		return value;
	}
	/**
	 * 设置{@link JSON}对象
	 * @param value
	 */
	public void value(JSON value){
		this.value =  value;
	}
}
